Trong thế giới tăng tốc phần cứng học sâu, các nhà phát triển thường phải đối mặt với Khoảng trống Ninja: sự khác biệt lớn về hiệu suất giữa mã Python cấp cao (PyTorch/TensorFlow) và các kernel CUDA cấp thấp được tối ưu hóa thủ công. Triton là một ngôn ngữ và trình biên dịch mã nguồn mở được thiết kế để lấp đầy khoảng trống này.
1. Quang phổ năng suất - hiệu suất
Truyền thống, bạn có hai lựa chọn: Năng suất cao (PyTorch), dễ viết nhưng thường kém hiệu quả với các thao tác tùy chỉnh, hoặc Hiệu suất cao (CUDA), yêu cầu kiến thức chuyên gia về kiến trúc GPU, quản lý bộ nhớ chung và đồng bộ luồng.
2. Mô hình lập trình theo ô
Khác với CUDA, hoạt động theo mô hình tập trung vào luồng mô hình (nơi bạn viết mã cho một luồng duy nhất), Triton sử dụng mô hình tập trung vào ô mô hình. Bạn viết chương trình hoạt động trên các khối (ô) dữ liệu. Trình biên dịch tự động xử lý:
- Tối ưu hóa truy cập bộ nhớ: Tối ưu hóa truy cập bộ nhớ toàn cục.
- Bộ nhớ chung: Quản lý bộ đệm SRAM nhanh trên chip.
- Lên lịch SM: Phân bổ công việc qua các bộ xử lý đa luồng.
3. Vì sao Triton lại quan trọng
Triton giúp các nhà nghiên cứu viết các kernel tùy chỉnh (như FlashAttention) bằng Python mà không cần hy sinh hiệu suất cần thiết cho huấn luyện mô hình quy mô lớn. Nó loại bỏ sự phức tạp của việc đồng bộ hóa thủ công và sắp xếp bộ nhớ.